package factory.simpleFactory

/**
 *
 * 简单工厂，一个工厂类对应一个类型(抽象类)的所有的实例的创建
 * 优点：封装了对象创建的流程，可根据传入的外部参数实例化对应的对象，职责明确
 * 缺点：不能直接扩展，增加实例需要修改工厂类，违背了开闭原则
 *
 * 这里模拟一个登录场景
 * 需求如下：
 * 1.微信登陆
 * 2.qq登录
 * 3.账号密码登录
 *
 * 测试一下
 */
fun main() {
    val login = LoginFactory.create(LoginFactory.LoginType.QQ)
//    val login = LoginFactory.create(LoginFactory.LoginType.WE_CHART)
//    val login = LoginFactory.create(LoginFactory.LoginType.ACCOUNT)

    login.verify("QQ号", "密码")
}